package global

import (
	"context"
	"fmt"
	"runtime"
	"video-api/internal/consts"
	"video-api/utility/cache"
	"video-api/utility/gi18n_lang"
	"video-api/utility/metrics"
	"video-api/utility/queue/asynqmq"
	"video-api/utility/redis_client"
	"video-api/utility/sys"

	"github.com/gogf/gf"
	"github.com/gogf/gf/os/gfile"
)

func Init(ctx context.Context) {
	fmt.Printf("当前运行环境：%v, 运行根路径为：%v \r\n项目版本：v%v, gf版本：%v \n", runtime.GOOS, gfile.Pwd(), consts.VERSIONAPP, gf.VERSION)

	modules := []func(ctx context.Context){
		sys.Init,
		gi18n_lang.Init,
		redis_client.Init,
		//queue.Init,//已废弃
		asynqmq.Init, //后续大概率加入第三方中间件
		cache.Init,   //设置缓存适配器,默认是高速内存缓存
		metrics.Init,
	}
	for _, initFunc := range modules {
		initFunc(ctx)
	}
	//TODO 其他初始化操作
}
